// Axios 实例配置
import axios from 'axios'

// 创建 axios 实例
const api = axios.create({
  baseURL: '/api', // 使用相对路径，适应不同部署环境
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
api.interceptors.request.use(
  config => {
    // 可以在这里添加认证token等
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  response => {
    // 处理统一响应结构
    const { data } = response;
    // 检查是否是统一响应结构
    if (data.hasOwnProperty('code')) {
      // 如果code不为0，表示有错误
      if (data.code !== 0) {
        // 抛出自定义错误
        return Promise.reject(new Error(data.message || '请求失败'));
      }
      // 返回实际数据
      return data.data;
    }
    // 如果不是统一响应结构，直接返回原数据
    return data;
  },
  error => {
    // 统一处理错误
    console.error('API Error:', error)
    return Promise.reject(error)
  }
)

export default api